package com.pomr.util.common;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.chainsaw.Main;

/**
 * MD5加密
 * @author Administrator
 *
 */
public class MD5 {
	/**利用MD5进行加密
     * @param str  待加密的字符串
     * @return  加密后的字符串
     * @throws NoSuchAlgorithmException  没有这种产生消息摘要的算法
     * @throws UnsupportedEncodingException  
     */
    public static String encodeByMd5(String str) throws Exception{
    	byte[] res = Base64.encodeBase64(str.getBytes());
        return new String(res, "utf-8");
    }
    /**
     * 利用MD5解密
     * @param str 加密后的字符串
     * @return 解密后的字符串
     * @throws Exception
     */
    public static String decodeByMD5(String str) throws Exception{
    	byte[] res = Base64.decodeBase64(str);
    	return new String(res, "utf-8");
    }
    
    /**
     * 对字符串加密后 与另一个加密字符串进行判断
     * @param str  待比较的字符串
     * @param md5str 比较的MD5加密字符串
     * @return 
     */
    public static boolean compareToString(String str, String md5str) throws Exception{
    	return md5str.equals(encodeByMd5(str));
    }
    
    public static void main(String[] args) {
    	
    	try {
			System.out.println(decodeByMD5("MTIzNDU2"));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
